package com.example.cv.service;

import com.example.cv.model.Candidate;
import com.example.cv.model.Employer;
import com.example.cv.model.Position;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 周杰
 */
@Transactional(rollbackFor = Exception.class)
public interface CandidateService {
    /**
     * description:求职者查询
     * @param candidate
     * @return：com.example.cv.model.Candidate
     */
    Candidate findCandidate(Candidate candidate);

    /**
     * description:求职者注册（插入）
     * @param candidate
     * @return boolean
     */
    boolean addCandidate(Candidate candidate);

    /**
     * description:求职者根据喜好动态查询用人单位
     * @param
     * @return java.util.List<com.example.cv.model.Position>
     */
    List<Position> findPositionsByParams(Position position);

    /**
     * description:查询所有用人单位
     * @param
     * @return java.util.List<com.example.cv.model.Position>
     */
    List<Position> findAllPositions();

    /**
     * description:根据Id查询求职者
     * @param c_id
     * @return com.example.cv.model.Candidate
     */
    Candidate findCandidateById(int c_id);

    /**
     * description:更新求职者发布时间
     * @param candidate
     * @return boolean
     */
    boolean updateCanReleaseTime(Candidate candidate);

    /**
     * description:撤销发布简历
     * @param candidate
     * @return boolean
     */
    boolean deleteCanReleaseTime(Candidate candidate);

    /**
     * description:求职者更新个人信息
     * @param candidate
     * @return java.lang.boolean
     */
    boolean updateCandidate(Candidate candidate);

    List<Position> findRecommendPositions(int c_id);

    Position findPositionByPId(int p_id);
}
